Google
 

Trailing-Edge - PDP-10 Archives - 6.1_emacs_manuals_1er - emacs/wordab.:ej
There is 1 other file named wordab.:ej in the archive. Click here to see a list.
@W[0 +8+fq(+4)[1
0fo10f"g+q1'
+fq()+4u1
fq1"l 0'
,q1:m(q1+4(]1]0))Id/noB}1`qGa}HEOJJ'JY5H!CImQA,d$}o3Hz>
5b8"5-(s=(:G#Z>{l9y"C"C=4:(;HM[Wg)iv)2+*'.'6+hD!QO`
)go3uD	r	Y9	"Y
	/O	<h	Q}	dL	t|
XC
	.
$	|
2y
E)
W;
h
H
y
: `.s<OPOwZ^{!mu{c8
aF
^v
1

F{[
V[
c[
k~6k(nw:n?KZ#[VtmKgw~y& Add Word Abbrev& Attach Word Abbrev Hook & Check And Make Word Abbrev
& Expand& Global Expand& Global or Local$& Make Non-Usage Abbrev Variable & Make Usage Abbrev Variable& Setup WORDAB Library& Shorten String!& WRDAB Mode or Global Expand& WRDAB Off PO Check& WRDAB On PO Check & WRDAB Process Options Hook& WRDAB Turn Off Ins Char& WRDAB Turn Off Old Char& WRDAB Turn On Ins Char& WRDAB Turn On Old Char%Attach Word Abbrev Keyboard MacroDefine Word AbbrevsEdit Word Abbrevs!Expand Word Abbrevs in RegionInsert Word AbbrevsKill All Word AbbrevsList Word Abbrevs Make These Characters ExpandMake Word Abbrev&Old Word Abbrev Character Describe%Read Incremental Word Abbrev FileRead Word Abbrev FileWord Abbrev Mode
WORDAB&Write Incremental Word Abbrev FileWrite Word Abbrev File&^R Abbrev Expand And Call Old Char$^R Abbrev Expand And Self-Insert^R Abbrev Expand for Tab^R Abbrev Expand Only^R Add Global Word Abbrev^R Add Mode Word Abbrev%^R Inverse Add Global Word Abbrev#^R Inverse Add Mode Word Abbrev^R Kill Global Word Abbrev^R Kill Mode Word Abbrev^R Unexpand Last Word^R Word Abbrev Prefix Mark~DIRECTORY~~DOC~ & Add Word Abbrev#~DOC~ & Attach Word Abbrev Hook&~DOC~ & Check And Make Word Abbrev~DOC~ & Expand~DOC~ & Global Expand~DOC~ & Global or Local*~DOC~ & Make Non-Usage Abbrev Variable&~DOC~ & Make Usage Abbrev Variable ~DOC~ & Setup WORDAB Library~DOC~ & Shorten String'~DOC~ & WRDAB Mode or Global Expand~DOC~ & WRDAB Off PO Check~DOC~ & WRDAB On PO Check&~DOC~ & WRDAB Process Options Hook#~DOC~ & WRDAB Turn Off Ins Char#~DOC~ & WRDAB Turn Off Old Char"~DOC~ & WRDAB Turn On Ins Char"~DOC~ & WRDAB Turn On Old Char+~DOC~ Attach Word Abbrev Keyboard Macro~DOC~ Define Word Abbrevs~DOC~ Edit Word Abbrevs'~DOC~ Expand Word Abbrevs in Region~DOC~ Insert Word Abbrevs~DOC~ Kill All Word Abbrevs~DOC~ List Word Abbrevs&~DOC~ Make These Characters Expand~DOC~ Make Word Abbrev,~DOC~ Old Word Abbrev Character Describe+~DOC~ Read Incremental Word Abbrev File~DOC~ Read Word Abbrev File~DOC~ Word Abbrev Mode~DOC~ WORDAB,~DOC~ Write Incremental Word Abbrev File ~DOC~ Write Word Abbrev File,~DOC~ ^R Abbrev Expand And Call Old Char*~DOC~ ^R Abbrev Expand And Self-Insert"~DOC~ ^R Abbrev Expand for Tab~DOC~ ^R Abbrev Expand Only#~DOC~ ^R Add Global Word Abbrev!~DOC~ ^R Add Mode Word Abbrev+~DOC~ ^R Inverse Add Global Word Abbrev)~DOC~ ^R Inverse Add Mode Word Abbrev$~DOC~ ^R Kill Global Word Abbrev"~DOC~ ^R Kill Mode Word Abbrev~DOC~ ^R Unexpand Last Word$~DOC~ ^R Word Abbrev Prefix Mark~DOC~ ~FILENAME~~FILENAME~
~INVERT~
WORDABj0fo..qWORDAB Loaded-10897125851"n
0m.CWord Abbrevs ModifiedNon0 means definitions have changed
0m.CSave Word Abbrevs* 1 => save all abbrevs on exit, -1 => just save incrementals
0m.CAdditional Abbrev Expanders
0m.COnly Global Abbrevs
0m.CWord Abbrev Mode
0m.CWORDAB Setup HookIf non0 is Teco code to run when WORDAB loaded (it must set keys)
@:i*!~@#;$%^&*-_=+[]()\|:`"'{},<.>/? 
m.CWORDAB Ins CharsSelf-inserting expanders
@:i*||m.CWORDAB Old CharsHairy expanders
0m.CWord Abbrev Prefix MarkPoint of prefix mark
0m.CLast Word Abbrev DefinedVariable name
0m.CReadable Word Abbrev Files* Non-0 means write human-readable kind
10897125851m.vWORDAB Loaded'
[1[2
6*5fsQVectoru.e
qOnly Global Abbrevs"e
m.m& WRDAB Mode or Global Expandu:.e(0)'
"#
m.m& Global Expandu:.e(0)'
m.m& Expandu:.e(1)
0u:.e(2)
0u:.e(3)
0u:.e(4)
@:i1|(
m(m.m& WRDAB Process Options Hook)
0fo..qWord Abbrev Mode"n
i Abbrev'
)|
0fo..qSet Mode Line Hooku2
q2"e q1'"# :i*21'm.vSet Mode Line Hookw
0fo..qExit Hookf"ew :i*'u1
@:i*|1
qWord Abbrevs Modified"n
qSave Word Abbrevsf"gw
m(m.mWrite Word Abbrev File)'
"#"l  m(m.mWrite Incremental Word Abbrev File)'''
|m.vExit Hookw
:fo..qWord Abbrev Modeu1
@:i:..q(q1+2)|!* 1 => turn on Word Abbrev Mode, 0 => turn it off!
1fsModeChangew  |
:fo..qOnly Global Abbrevsu1
@:i:..q(q1+2)|!* 1=> use only global word abbrevs, 0 => both kinds!
qWORDAB Setup Hook[1
"n m.m& Global Expandu:.e(0)
q1"e m.m^R Add Global Word Abbrevu:.x()
m.m^R Inverse Add Global Word Abbrevu:.x()''
"# m.m& WRDAB Mode or Global Expandu:.e(0)
q1"e m.m^R Add Mode Word Abbrevu:.x()
m.m^R Inverse Add Mode Word Abbrevu:.x()''
 |
:fo..qAdditional Abbrev Expandersu1
q:..q(q1+1)f"n,m(m.mMake These Characters Expand)'w
@:i:..q(q1+2)|!Non-standard characters that should cause expansion.!
	       ,:m(m.mMake These Characters Expand)
|
0fo..qWORDAB Setup Hooku1
q1"n m1'
"#
m.m^R Unexpand Last Wordu:.x(U)
m.m^R Abbrev Expand Onlyu... w
m.m^R Word Abbrev Prefix Mark!"!u..'
m.m^R Add Global Word Abbrevu:.x(+)
m.m^R Inverse Add Global Word Abbrevu:.x(-)
qOnly Global Abbrevs"n
m.m^R Add Global Word Abbrevu:.x()
m.m^R Inverse Add Global Word Abbrevu:.x()'
"#
m.m^R Add Mode Word Abbrevu:.x()
m.m^R Inverse Add Mode Word Abbrevu:.x()''
1fsModeChangew 3[0[1[2[3[4[5 0[6
:,.f-zu0j
[.1[.2
0[Auto Fill Mode
0u..h
qModeu2
qWORDAB Ins Charsu1
qWORDAB Old Charsu4 :i114
:i*Expanding abbrevs[..j fr
f<!DONE!
@:f1l .-(q0+z);
1:<-fwu4u3>"e
q3,q4x.1
:fo..qX .1 2 Abbrevf"gu.2 oEXP'w
:fo..qX .1 * Abbrevf"lw :c !<!>'u.2
!EXP!
      1u5
< q6"e 2,m.i
fi:fcu4'
"# 32u4'
q4-!"e 1u6 32u4'
q4-32"e q5"n m:.e(1)' 1;'
q4-,"e q5"n m:.e(1) 0u5'"# fg' !<!>'
q4-."e q5"n m:.e(1)' f;DONE'
q4--"e
q5"n -:@f-*0,0-1uWord Abbrev Prefix Mark
m:.e(1)
0u5'
"# fg' !<!>'
q4-"e  0u5 !<!>'
q4-F"e fsVZ-q0f[VZ
m(m.m^R Fill Paragraph)w
f]VZ
@v 0u5 !<!>'
q4-"e f;DONE'
q4-14."e f+ !<!>'
q4-"e 1;'
q4-?"e 4110.fsRereadw !<!>'
fg q4m(m.m& Charprint) ft is meaningless here.

4110.fsRereadw
>
'
@f1l >
V!^R Abbrev Expand !
.(
1f<!ExpandQuit!
0,0a"c m:.e(0)'
>
)-."e ff"g fg'' 1
!^R Abbrev Expand !
 1f<!ExpandQuit!
ff"E
0,0a"c m:.e(0)''
[.1 8[..e
    q..0fs^RIndirect:\u.1 ]..e
f @mWRDAB Old .1
> 1m!^R Abbrev Expand !
 1f<!ExpandQuit!
ff"e 0,0a"c m:.e(0)''
f@m(q..0@fs^RIndirect@fs^RInit)
> 1!!^R Abbrev Expand !
 1f<!ExpandQuit!
0,0a[.1
.,.f
f@mWRDAB Old 11f
0,0a"B q.1"C
ff"E
;-@f	 k
0,0a"c m:.e(0)'
f @mWRDAB Old 11f'''
> 1_!^R Abbrev Expand !
 ff"E
0,0a"c m:.e(0)''
. m.vWord Abbrev Prefix Markw
 .,(i-). `-fwx*[.1 qMode[.2
:fo..qX .1 .2 Abbrevf"lw :fo..qX .1 * Abbrevf"lw''u.2
:m:.e(1)7-fwx*[.1
:fo..qX .1 * Abbrevf"lw'[.2
:m:.e(1)%[..0
q:..q(q.2+2)[.3
q.3fp-101"N :i:..q(q.2+2)1'
"# .(g.3)j .(1a-#"n \+1:\u:..q(q.2+2)')j fq.3d'
0ff(x:.e(2)):[.6w
-fq.1d
0,0a--"E
qWord Abbrev Prefix Mark+1-."E
:i.1-.1
-d''
.[.4
g:..q(q.2+1)
.[.5
-1[.7
fq.1[.8
<%.7-q.8;
q.7 :g.1"a0;'>
q.7-q.8"l q.7:g.1"u
q.4j :fwl
1 @fc
q.8-1 :g.1"u
0fo..qWordab All Caps"e
0u.3
:< 2:fwl .-q.5; %.3w
1 @fc >w
q.3"e q.4,q.5 @fc''
"#
q.4,q.5 @fc''
''
q.5j
q.4,q.5 f
ff-1"G oUPDATE '
qAuto Fill Mode"e oUPDATE'
m.m^R Auto-Fill Space
0f/2< .-(0mSf
).@; >
!UPDATE!

 q.6,.x:.e(3)
.u:.e(4)
0:g:..q(q.2+2)-#"e
q:..q(q.2)u.4
fq.1+3,fq.4-7:g.4u.4
mX .1 .4-WABMAC Abbrev'
M[0[1[2[3[4[5
.-(q:.e(4)-(fq:.e(3)-fq:.e(2)f"lw 0'))"l
.u4 fnq4j'
"# q:.e(4)-.f"g+.'"#w .'-zu4 fnq4+zj'
q:.e(4):j"e oNONE'
q:.e(3)u0
fq0u1 q1:"g oNONE'
.-q1f"l oNONE'u2
q:.e(2)u3 q3fp"l oNONE'
q2,.f~0"n
!NONE! fg @ft
No last expansion 0fsEchoActivew 1 '
q2,.k
.,(g3).f
q0u:.e(2)
q3u:.e(3)
.u:.e(4)
0{[0
 ff&2"n
uOnly Global Abbrevs'
ff&1"n "'gu0'
"# qWord Abbrev Mode"'eu0'
q0,0fuWord Abbrev Mode
0x[0[1[2[P
 m.m& CharprintuP
1,(:i*Type word abbrev key to describe: )m.i
@:fiu0
q0fs^RCMacrou1
q1-(m.m^R Abbrev Expand And Self-Insert)"e
    Afs^RInitu2'
"# q1-(m.m^R Abbrev Expand for Tab)"e
      qWRDAB Old 11u2'
"# q1-(m.m^R Abbrev Expand And Call Old Char)"e
      8[..e q0:\u1 ]..e
qWRDAB Old 1u2'
"# q1-(m.m^R Abbrev Expand Only)"e oM-?'
"# q0mp ft does not run an expander.
   oM-?''''
ftAfter possibly expanding,

q2,q0f[^RCMacro
!M-?! :m(m.m^R Describe){[.1[.2[.4[E
q..o[B
g(q..o(f[BBindw))
bj 0s <:s;ric>
zj i

bj
 < @f
l  .-z;
fwfx.1
0,1a-:"n :iENo : ending abbrev .1 oERR'
   d
@f 	k
0,1a-("E d :flfx.2 d'
"# :i.2*'
@f 	k
@f#0123456789 fx.4
fq.4"E :i.40'
@f 	k
0,1a-34"N :iENo quote to start expansion for .1 oERR'
   d i:i*
0s" !'! <:s"e :iENo quote to end expansion for .1 oERR'
	     0,1a-":@; c> !'!
15.,1a-15."n
      :iEPossible unquoted " in expansion for .1 -- final " not at end of line
      oERR !''!'
   -d
iM.VX .1 .2 Abbrevw
i M.CX .1 .2 Abbrev.4
>
j 0s"" <:s; -d> !''!
ff&2"n m(m.mKill All Word Abbrevs)'
m(hx*)
1uWord Abbrevs Modified

 j g( 0fo..qLately Changed Abbrevsf"ew :i*' ) i

hx*m.vLately Changed Abbrevsw

!ERR!

 0l .fsVBw 0u.2 zj <-l b-.; %.2w>
qb[..o
zj <q.2-1f(:;)u.2 -l>
qe fsERR r:i*( :i*( :i*[.3)[.2)[.1
fq.3"E qMODEu.3'
q.1,q.2 m(m.m& Check And Make Word Abbrev).3
w 1 ~[0[1
 ff&2"n u0'
"# :i0'
qWORDAB Ins Charsu1
:iWORDAB Ins Chars10
:m(m.m& WRDAB Process Options Hook)n"L f @:m(m.m^R Kill Mode Word Abbrev) '
qMode[.1
f @m(m.m& Add Word Abbrev).1.1 Abbrev
w 1 e"L f @:m(m.m^R Kill Global Word Abbrev) '
f @m(m.m& Add Word Abbrev)*Global Abbrev
w 1 QqMode[.4
 .-z[.0
-:fwl
-fwx*[.1
1,m(m.m& Read Line)Expansion for .4 abbrev ".1": [.2 !''!
q.2"e 1'
fq.2"e 1'
m(m.mMake Word Abbrev).1.2
@m(m.m^R Abbrev Expand Only)f
q.0+zj
1H.-z[.0
-:fwl
-fwx*[.1
1,m(m.m& Read Line)Expansion for global abbrev ".1": [.2 !''!
q.2"e 1'
fq.2"e 1'
m(m.mMake Word Abbrev).1.2*
@m(m.m^R Abbrev Expand Only)f
q.0+zj
1}:i*Fundamental fo..qMODE[.2
1, m(m.m& Read Line)Kill .2 Abbrev: [.1
q.1"E '
0fo..qX .1 .2 Abbrev"E
0fo..qX .1 * Abbrev"E
FG @ft".1" is neither .2 mode nor global abbrev. !''!
	0fsEchoActivew 1 '
"# FG @ft".1" is not a .2 mode abbrev, but is a global abbrev.
Kill it? !''!
	  1m(m.m& Yes Or No)"E
@ft Not killed.  0fsEchoActivew 1 '
:i.2*''
m(m.mKill Variable)X .1 .2 Abbrev
m(m.mKill Variable)X .1 .2-WABMAC Abbrev
1uWord Abbrevs Modified

 0fo..qLately Changed Abbrevsf"ew :i*'u.4
@:i*|.4
mkX .1 .2-WABMAC Abbrev
mkX .1 .2 Abbrev| m.vLately Changed Abbrevsw
w 1 1, m(m.m& Read Line)Kill Global Abbrev: [.1
q.1"E '
0fo..qX .1 * Abbrev"E
FG @ft".1" is not a global abbrev.
0fsEchoActivew 1  !''! '
m(m.mKill Variable)X .1 * Abbrev
m(m.mKill Variable)X .1 *-WABMAC Abbrev
1uWord Abbrevs Modified

 0fo..qLately Changed Abbrevsf"ew :i*'u.4
@:i*|.4
mkX .1 *-WABMAC Abbrev
mkX .1 * Abbrev| m.vLately Changed Abbrevsw
w 1 (:i* [.2
[.3[.4[.5.[.6 fnq.6j
1:<fs^RMark+1f"G-1 u.3 1;'
"E .(:f(j)u.3)j 1;'
"N -fwl .u.3 fwl 1;'
>"N FG F*w 1 '
Q.3,. fx.3
m.m& Shorten String
m.m& Read Line
q.3mSu.4
1,mR for ".4": [.1 !''!
q.1"E 1 '
q.1,q.3 m(m.m& Check And Make Word Abbrev).2
1 
:i*[2 [1 [3
:iLast Word Abbrev DefinedX 1 2 Abbrev
 q1[4 [5
fq1< 0,1:g4u5
5"b fg @ft
Break chars not allowed in abbrev 0fsEchoActivew 1 '
       1,fq4:g4u4>
m.m& Shorten String
0fo..qX 1 2 Abbrevu4
q4"N f=34"N FG
q4mSu4
@ftRedefine "1" from "4"?  !''''!
1m(m.m& Yes or No)"E @ftNot redefined.
0fsEchoActivew 1 ''
"# @ftAlready so defined.
0fsEchoActivew 1 ''
q3m.vX 1 2 Abbrevw
m.cX 1 2 Abbrev0
1uWord Abbrevs Modified

 f[BBind
0fo..qLately Changed Abbrevsf"ew :i*'u4
g4
@i|
mvX 1 2 Abbrev|
.(g3)j
0s <:s; r i c>
zj @i|0|
hx*m.vLately Changed Abbrevsw
+fq(:i*)"g
:i*C fsEchoDisplayw
@ftWarning: M-X Edit Word Abbrevs ignores its string argument --
it does not filter.  All abbrevs are being edited.
0fsEchoActivew'
f[BBind
m(m.mInsert Word Abbrevs) bj
:i*Edit Word Abbrevs[..J
f<!DoneEditWordAbbrevs!

1@:<
1,m(m.mDefine Word Abbrevs)
f;DoneEditWordAbbrevs >w
>
fsEchoDisplayw CfsEchoDisplayw
@ftWord abbrevs redefined.
0fsEchoActivew
1	f[BBind
:ftabbrev:	(mode)	count	"expansion"


1,(f)m(m.mInsert Word Abbrevs)
fsListen"e ftDone.
'"# ftFlushed.
'
1j[1[2[3[4[5[6[7 [9 1,fInsert abbrevs matching: f"e'[0
fq0"g 0s0'"# 0u0'
f"n&7'"#w 7'u1
.f[VB fsZ-.f[VZ
"n m.m& Maybe Flush Output'
:fo..qX u9 q9"l -q9u9'
fq..q/5-q9/(q:..q(0))(
q9-1u9
)<
q:..q(%9)u2
q:..q(%9)u3
q:..q(%9)u4
.u5
q3fp"l oNEXT'
g2
-7f~ Abbrev"n oNEXT' -7d
q5j 2f~X "n oNEXT' 2d
@:f l d .u6
zj .u7 g3
q0"n
q1&1"n q5,q6:fb"l oINS''
q1&2"n q7,z:fb"l oINS''
q1&4"n q6,q7:fb"l oINS''
oNEXT'
!INS!
q6j
.,q7f=*"e
d i:		'
"# q7-zu7
i:	(
q7+zj i)	'
g4
i	"
<@:f"l .-z; i" c>
i"
	!''''!
"n
q5,.t'
.u5
!NEXT!
q5,zk
"n ma1;'
>
ht[.1[.2[.3
 q..q[..o zj
:f<!DONE! 15r
1<
0,2:g(.fsWord)u.3
f~.3X f"N "L f;DONE'
1;'
.fsWordu.3
.+5fsWordu.2
q.2fp:;
fq.3-7,fq.3 :g.3 u.3
f~.3 Abbrev"E 15d'
>
>
0uWord Abbrevs Modified
:i*m.vLately Changed Abbrevsw
f[DFile 1f[FnamSyntax
0fo..qLast Word Abbrev Filef"n fsDFilew'
"#w etDSK:WORDAB DEFNS fsHSnamefsDSnamew'
4,4fWord Abbrev Filef"ew'fsDFilew
fsDFilem.vLast Word Abbrev Filew
e?"n '
f[BBind er @y
10f~m.m& Make "n
:m(m.mDefine Word Abbrevs)'
m(hx*)
.[.0[.1[.2[.3[.4[.5 f[DFile
1f[FnamSyntax
0fo..qLast Word Abbrev Filef"n fsDFilew'
 "#w etDSK:WORDAB DEFNS fsHSnamefsDSnamew'
 4,1fWord Abbrev Filef"ew'u.0
et.0 fsDFileu.0
q.0m.vLast Word Abbrev Filew
f[BBind
qReadable Word Abbrev Files"n
m(m.mInsert Word Abbrevs)
oWRITE'
:fo..qX u.2
q.2"L -q.2u.2'
ff&1"E
@i|m.m& Make Usage Abbrev Variable
|'"#
@i|m.m& Make Non-Usage Abbrev Variable
|'
 iq..q[..o

 0s
fq..q/5-q.2/3(
q.2-1u.2
)< q:..Q(%.2)u.3
q:..Q(%.2)u.4
q:..Q(%.2)u.5
q.4fp"L oNEXT'
f~(0,2:g.3)X "N oNEXT'
f~(fq.3-7,fq.3:g.3) Abbrev"N oNEXT'
iMV.3
.(g.4)j <:s; r i c> zj i
ff&1"E g.5 i'
i

!NEXT! >
!WRITE!

 eihpef.0
er fsIFileu.0 ec @ft
Written: .0

0uWord Abbrevs Modified
0fsEchoActivew 1 [1
 e[e\ fne^e] f[DFile 1f[FNamSyntax
etDSK: fsHSNamefsDSNamew etINCABS >
4,1fIncremental Filef"e w'u1
f[BBind
g(0fo..qLately Changed Abbrevsf"ew :i*')
z"e :i*No incremental abbrevs to write fsErr'
j @i|m.m& Make Non-Usage Abbrev Variable q..q[..o
m.mKill Variable
|
eihpef1
er fsIFileu1 ec @ft
Written: 1

 0uWord Abbrevs Modified
0fsEchoActivew 1?[1 f[DFile
e[ fne] f[DFile 1f[FNamSyntax
etDSK: fsHSNamefsDSNamew etINCABS >
4,4fIncremental word abbrev filef"e w'u1
et1
e?"e
f[BBindw er @y
j @:i1|m.m& Make Non-Usage Abbrev Variable q..q[..o
m.mKill Variable
|
fq1f=1"e fq1c'"# g1'
.,zx*m.vLately Changed Abbrevsw
m(hx*)'
:i*[.1
:i*[.2
:i*[.0
:FO..Q.1[.3
Q.3"L -Q.3*5J 15,0I 15R q.1,.FSWORDW 0,.+10FSWORDW
-Q.3U.3'
q.3+1*5j q.2,.fswordw
5c q.0,.fswordw :i*[.1
:i*[.2
:FO..Q.1[.3
Q.3"L -Q.3*5J 15,0I 15R q.1,.FSWORDW 0,.+10FSWORDW
-Q.3U.3'
q.3+1*5j q.2,.fswordw
K[1[2[3[4
 qModeu2
1,fAbbrev: u1
1,fMode (2): u3
fq3"n q3u2'
:fo..qLast Kbd Macro"e :i*No last keyboard macrofsErr'
 qLast Kbd Macrou4
m(m.m& Attach Word Abbrev Hook)124
 |[1[2[3[4[5
 :i*( :i*( :i3 )u2 )u1
f[BBind
fq1"e qLast Word Abbrev Definedf"ew :i*No last word abbrevfsErr'u1
       2,32f1u2
2,q2:g1(
q2+1,fq1-7:g1u2
)u1'
:fo..qX 1 2 Abbrevu4
q4"l
:i*CfsEchoDisplayw
q2u5 f=5*"e :i5global'
"#
:fo..qX 1 * Abbrev"g
@ft1 is not a 2 abbrev.  Did you mean global? 
1m(m.m& Yes or No)"n :i2* oOK'''
@ft1 is not a 5 abbrev.  Want to define it? 
1m(m.m& Yes or No)"e '
1,m(m.m& Read Line)Expansion for 5 abbrev 1: f"e'u5
q5m.cX 1 2 Abbrev0w
i
mvX 1 2 Abbrev
.(g5)j <:s;ric>
zj i0'
!OK!
q3m.vX 1 2-WABMAC Abbrevw
m.cX 1 2-WABMAC Abbrev0w
m.cX 1 2 Abbrev#0w
i
mvX 1 2-WABMAC Abbrev
.(g3)j <:s;ric>
zj i0
m.cX 1 2 Abbrev#0w
j g(0fo..qLately Changed Abbrevsf"ew :i*')
hx*m.vLately Changed Abbrevsw
1uWord Abbrevs Modified
#[.0[.1[.6[.7[.8 Afs^RInit[.2
m.m^R Abbrev Expand for Tabu.0
0fo..qWord Abbrev Mode"N
qI-q.0"n
qIm(m(m.m& Global or Local)I)WRDAB Old 11
q.0uI'
m.m& WRDAB On PO Checku.0
m.m& WRDAB Turn On Ins Charu.7
m.m& WRDAB Turn On Old Charu.8
'
"# qI-q.0"E
qWRDAB Old 11uI'
m.m& WRDAB Off PO Checku.0
m.m& WRDAB Turn Off Ins Charu.7
m.m& WRDAB Turn Off Old Charu.8
'
qWORDAB Ins Charsu.1
m.m^R Abbrev Expand And Self-Insertu.6
m.0
qWORDAB Old Charsu.1
m.m^R Abbrev Expand And Call Old Charu.6
q.8u.7
m.0
@-1[.4[.5
< %.4-fq.1;
q.4:g.1u.5
q.5-q.6"E q.5m.7' >
@-1[.4[.5
< %.4-fq.1;
q.4:g.1u.5
q.5-q.6"N q.5m.7' >
[.0
q.0[.4
q.4-q.2"e
m.m^R Abbrev Expand And Self-Insertu.0
'
q.4fp"g
f~.4!^R Abbrev Expand -19"e ''
qWORDAB Ins Chars[.1
f.1[.2
0,q.2:g.1[.3
q.2+1,fq.1:g.1u.1
:iWORDAB Ins Chars.3.1
qWORDAB Old Charsu.1
:i.2
:iWORDAB Old Chars.1.2
m.m^R Abbrev Expand And Call Old Charu.0
[.6 8[..e :\u.6 ]..e
q.4m(m(m.m& Global or Local).0)WRDAB Old .6
;[.0
q.0[.1
q.1fp"G
f~.1!^R Abbrev Expand -19"E
''
m.m^R Abbrev Expand And Call Old Charu.0
[.6 8[..e :\u.6 ]..e
q.1m(m(m.m& Global or Local).0)WRDAB Old .6
[.0
@fs^RInitu.0 E[.6 8[..e :\u.6 ]..e
0fo..qWRDAB Old .6[.1
[.2
q.1u.2 v[1[2[3[9
[ -1:fsQPHome(]*w)u3
qBuffer Indexu9 q9+8u2
q:.b(q9)-9/2u1
q1< q:.b(%2)-q3"e q.L ' %2w >
q.V b[.3[.4[.5
fq.3-40"G
0,16:g.3u.4
fq.3-16,fq.3:g.3u.5
:i.4.4.....5'
"# q.3u.4'
q.4 AWord Abbrev Mode package.  Documentation in INFO under EMACS.S Run when WORDAB is loaded.
If you do non-trivial hacking of Word Abbrev mode, you should be on
    the WORDAB@MIT-AI mailing list.
Calls variable WORDAB Setup Hook, if it exists.  That can do things
    like auto-loading a file of abbreviations.  It must also connect
    keys.
If the hook does not exist (or is 0), we will connect the standard
    Word Abbrev mode keys:
	C-X C-A	  runs ^R Add Mode Word Abbrev,
	C-X C-H	  runs ^R Inverse Add Mode Word Abbrev,
	C-X +	  runs ^R Add Global Word Abbrev,
	C-X -	  runs ^R Inverse Add Global Word Abbrev,
	M-'	  runs ^R Word Abbrev Prefix Mark,
	C-M-Space runs ^R Abbrev Expand Only, and
	C-X U	  runs ^R Unexpand Last Word.
Appends to variables Set Mode Line Hook and Exit Hook.
This object file was compressed on 8:35am  Sunday, 1 March 1981
by ECC on MC from the following source libraries:

   EMACS1; DSK: WORDAB 614,	03/01/81 08:35:31eC Finds abbrevs in region; offers to expand each.
Searches region for word abbrevs.  When one is found, the buffer is
    displayed with the cursor just after the abbrev.  The character
    you then type determines what action is taken:
Space	expands the abbrev and goes on to the next one.
Rubout	goes on to the next one without expanding.
Altmode	exits this command without expanding.
Period	expands and then exit.
Comma	expands and stays so you can look it over.  Then type one
	of these characters again.
Exclamation mark expands this and each remaining abbrev without
	asking.
Hyphen	expands and glues to a prefix and stays.  The prefix and
	abbrev should be separated by a "-".
F	causes this paragraph to be filled.
C-R	enters a recursive edit level, so you can move point or do
	minor editing.
C-L	clears and redisplays the screen and stays.u^R Expand abbrev before point, but insert nothing.
If given an argument, will feep if last word isn't an abbrev. ^R Expand abbrev before point, then old action.
The "old" function run by the character after the expansion check may
    be described by M-X Old Word Abbrev Character Describe which will
    ask you to type the character to describe.
Explicit numeric argument inhibits expanding.S Expand last word if an abbrev.
Giving an explicit numeric argument inhibits expansion, just inserting
    that many copies of character that ran this.1^R Expand abbrev at point if old Tab action inserts.
If Tab will not insert any whitespace at point, no expansion is
    attempted.  (E.g. the Tab is reindenting the line, but point is
    mid-line.)
The "old" function run by Tab after the expansion check may be
    described by M-X Old Word Abbrev Character Describe which will ask
    you to type the character to describe.
Explicit numeric argument inhibits expanding.^R Remember point as end of an abbrev prefix.
Expansion of the prefix may occur unless an numeric argument is given.
Remembers this point as a prefix-end, and inserts a hyphen (which will
    disappear if an abbrev expands just after that hyphen).  E.g. you
    might type "inter", mark that as a prefix (you see "inter-"), and
    then type an abbrev ("inter-comm " which becomes
    "intercommittee").S Maybe expand previous word.
Expand previous word if mode or global abbrev.
This goes on Q:.E(0) if user wants both modals and globals.^S Expand previous word if global abbrev.
This goes on Q:.E(0) if user wants only globals.TS .1 is abbrev, .2 is ..Q offset
This is the abbrev-expander, goes on Q:.E(1).
A pre-comma numeric argument inhibits auto-filling.  (Since ^^M, e.g.
    is called by some to insert CRLF but not auto-fill.)g^R Undo last expansion, leaving the abbrev.
Another ^R Unexpand Last Word will redo the expansion.
An effort is made to keep point unchanged, but if unexpanding causes a change
    in the text around point, point may move.?C Turn Word Abbrev mode on or off.
Given no argument, the mode is toggled (turned on if it was off, and
    turned off if it was on).
Given positive argument, the mode is always turned on.
Given 0 or negative argument, the mode is turned off.
Giving this command 1 as a pre-comma argument means that you only use
    global abbrevs, and things are set up to be faster (e.g. faster
    expansion checking since it doesn't have to check both global and
    local abbrevs).
Each of the following chars: ~@#;$%^&*()-_=+[]\|:'`"{},<.>/?!, Space,
    Return, and Tab, will cause expansion of abbrevs followed by their
    normal action.
If you wish to supply additional characters that should expand, see
    the description of Make These Characters Expand.
If you wish to completely replace this list of expanding characters,
    set the variable WORDAB Ins Chars in your init or EVARS file to
    the string of characters that should expand.>C Tell what a character does after expanding.
This command will ask you to type a character, e.g. Space, which runs
    the word abbrev expander and then calls the old definition for
    that character.
The description for that old definition will be given, e.g.  the
    description for ^R Auto-Fill Space.bC Define abbrevs from a definition list in the buffer.
Buffer should contain the word abbrev definition list.
If given a pre-comma numeric argument, all abbrevs will be killed
    before defining the new ones from the buffer.  (The old abbrevs
    are not killed until we are sure that the syntax of the buffer's
    definition list is correct.)dC Define one word abbrev, global or for any mode.
After doing M-X Make Word Abbrevfoofind outer otter, typing "foo"
    will automatically expand to "find outer otter".
3rd string argument, if any, is the mode for the abbrev.
No 3rd string argument means use the current mode.
3rd string argument = "*" means this make a global abbrev.
This command defines just one abbrev, as compared to Define Word
    Abbrevs which defines several abbrevs from a list in the buffer.C Add characters to the list of abbrev expanders.
E.g. M-X Make These Characters Expand1234567890 will cause the
    digits to expand any abbrev before them, just like #$%.,/? etc.
    Note, though, that this will not necessarily make digits be
    word-delimiters.
If your keyboard has Top-characters (e.g. Top-Z is alpha), you can
    have them be expanders too, though some of them can't be typed to
    ^R Extended Command (namely Top-Q and Top-M).  Also: if you
    put this command into an init file, be careful to double any use
    of Top-S (namely C-]).
You can have an EVARS file (as opposed to an init file) declare
    additional expanders too in a simple way -- just put the
    characters into the variable Additional Abbrev Expanders.  E.g. to
    make the digits expand, put the following line into your EVARS
    file (you need the "*" to force it to be a string):
Additional Abbrev Expanders:*1234567890 (Top-character users:  in an
    EVARS file you would not need to double Top-S.)^R Define an abbrev for word(s) before point.
Negative numeric argument means to delete the word abbrev.  (If there
    is no such mode abbrev, but there is a global, it asks if it
    should kill the global.)
Positive numeric argument (>0) means expansion is that many last
    words.
Zero numeric argument means expansion is between point and MARK.
(Extension writers: If Teco's fs^RMark set, that means expansion is
    between . and fs^RMark.)
The abbrev is only effective when in the current mode (e.g. LISP).^R Define an abbrev for word(s) before point.
Negative numeric argument means to delete the word abbrev.
Positive numeric argument (>0) means expansion is that many last
    words.
Zero numeric argument means expansion is between point and MARK.
(Extension writers: if fs^RMark set, that means expansion is between
    . and fs^RMark.)
The abbrev is effective in all major modes.e^R Define the expansion for abbrev before point.
Numeric argument n means nth word before point is to be an abbrev
    (e.g.  you thought it already was, and you are now n words
    beyond).  No numeric argument means the word just before point,
    same as argument of 1.
Reads a one-line expansion for the abbrev, defines it, and expands
    it.^R Define the expansion for abbrev before point.
Numeric argument n means nth word before point is to be an abbrev
    (e.g.  you thought it already was, and you are now n words
    beyond).  No numeric argument means the word just before point,
    same as argument of 1.
Reads the expansion in the echo area.  (This command cannot define
    multi-line expansions.)
Defines that abbrev, and then expands the abbrev before point.
Aborts if you abort the line-reading with Rubout, or if the expansion
    is null.q^R Remove the definition for one abbrev.
Same as ^R Add Mode Word Abbrev with a negative numeric argument.x^R Remove the definition for one abbrev.
Same as ^R Add Global Word Abbrev with a negative numeric
    argument.NS Reads an abbrev for words before point.
Stringarg1 is "*" for global abbrev, and space-modename for a mode
    abbrev, e.g. " TECO".
Stringarg2 is & Read Line prompt.
Calls & Read Line to read the abbrev.
ARG non-0 means expansion is last ARG words.  (Includes breaks in
    between words, but not those before first or after last word.)
ARG 0 means expansion is between point and MARK.
If fs^RMark set, then for any ARG expansion between . and fs^RMark.
If the abbrev is already defined, user is asked if redefinition
    wanted.
The abbrev must not contain any break characters.
Abbrev variable is constructed: X abbreviation <mode/*> Abbrev.  Its
    value is a string which is the expansion.LS Basic definer subroutine.
Pre-comma numeric argument is abbrev.
Post-comma numeric argument is expansion.
String argument is "*" or modename.
Checks for break characters in abbrev (not allowed).C Allow user to edit the list of defined word abbrevs.
Note that any '"'s are doubled so that the syntax is unambiguous.
    E.g.  if the abbrev 'xsay' is to expand to 'He said "Hello".',
    then it will be:
	xsay: 	1	"He said ""Hello""."
A recursive edit level is entered.  When exited by ^R Exit the
	buffer will be considered as new definitions of all word
	abbrevs.  Any abbrevs missing from the list will be killed.
Abort Recursive Edit will abort M-X Edit Word Abbrevs, leaving
	word abbrevs untouched.%C Print some or all word abbrev definitions.
Lists a table of word abbrev definitions for currently defined
    abbrevs.
If string argument is null, all abbrevs are listed.
If there is a string argument, it filters which abbrevs' definitions
    are listed.  (Actually, it is a TECO search string.)  If the
    abbrev, its mode, or its expansion contains the filter that
    definition is listed.
Giving a numeric argument will control what the filter applies to:
	0 or 7 (same as no argument): abbrev, mode, or expansion
	1: abbrev only
	2: expansion only
	4: mode only
Combinations by summing the above -- e.g. 3 means abbrev or expansion,
    but not mode.C Insert a list of some or all word abbrev definitions.
Inserts a table of word abbrev definitions for some or all of the
    currently defined abbrevs.  Format is that used by M-X List Word
    Abbrevs and M-X Edit Word Abbrevs.
If string argument is null, all abbrevs are inserted.
If there is a string argument, it filters which abbrevs' definitions
    are inserted.  (Actually, it is a TECO search string.)  If the
    abbrev, its mode, or its expansion contains the filter, that
    definition is inserted.
Giving a numeric argument will control what the filter applies to:
	0 or 7 (same as no argument): abbrev, mode, or expansion
	1: abbrev only
	2: expansion only
	4: mode only
    Combinations by summing the above -- e.g. 3 means abbrev or
    expansion, but not mode.
Extension writers: giving a 1 pre-comma argument causes the
    definitions to be listed as they are inserted.tC Kill all abbrev definitions, leaving a blank slate.
It is as if you had not read or defined any word abbrevs.C Define word abbrevs from an abbrev definition file.
Stringarg is word abbrev definition file.
Default is <homedir>;WORDAB DEFNS.
File may be in default fast-loading foramt or human-readable format.
This will not complain if the file does not exist.4C Write all the current abbrev definitions to a file.
Stringarg filename.  Default is WORDAB DEFNS.
Argument present means do not write out usage counts.
Normally writes a fast-loading format file, but if you have the
    Readable Word Abbrev Files option variable set to 1, it will write
    a human-readable format file (like that used by
    List Word Abbrevs).
Default filenames come from last definition filename used.'C Write abbrevs defined/changed since dumping this environment.
Writes to file named by string argument.  Defaults to home directory,
    INCABS > (INCABS..0 on Twenex.).
This command is used by people with a large number of abbrevs, and who
    dump their environments.  The init file should generally use M-X
    Write Word Abbrev File, and the & Startup... should use
    M-X Read Incremental Word Abbrev File.gC Define abbrevs changed since dumping.
String argument is filename that contains incremental abbrev
    definitions, written by M-X Write Incremental Word Abbrev
    File.  Default is home directory, INCABS >.
This command is used by people with a large number of abbrevs, and who
    dump their environments.  The init file should generally use M-X Write
    Word Abbrev File, and the & Startup... should use this function.
This will not complain if the file does not exist.VS Like .V and .C combined, for speed.
STRARG1 is abbrev variable name.
STRARG2 is abbrev expansion with altmodes, ^]s quoted with ^]s.
STRARG3 is usage-count string.
Assumes ..Q is selected as buffer (..O).#S Like .V and .C combined,
but faster.
STRARG1 is abbrev variable name string.
STRARG2 is abbrev expansion string.
Assumes ..Q is selected as buffer (..O).C Abbrev will run a macro after expanding.
The last keyboard macro defined is attached to a word abbrev as its
    word abbrev hook.  Just after that abbrev expands, this hook is
    executed.
BE CAREFUL!!  -- keyboard macro attachment is not always
    well-defined, due to some strange Teco effects.  Not everything
    works that "ought to".
First string argument is abbrev to attach it to.  If null, the last
    one defined is used.
Second string argument is mode (null means use current mode).  Use "*"
    if you mean to attach it to a global abbrev.  If you are attaching
    to the last defined abbrev, you can use anything for this string
    argument.
Note that word abbrev hooks will be saved by M-X Write Word Abbrev
    File and M-X Write Incremental Word Abbrev File, just like normal
    abbrevs.  Also, they appear in definition listings (e.g. by M-X
    List Word Abbrevs or M-X Edit Word Abbrevs) in pairs, such as the
    following:
textmode:		#0	"-*-Text-*-"
textmode: (*-WABMAC)	0	"m(m.mText Mode)"jS Put some Teco code on a word abbrev.
The first string argument is the abbrev, second is mode name (or "*"
    for global abbrev).  Given null abbrev, we use the last defined.
The third string argument is a hook to call after expanding that
    abbrev.
Note that word abbrev hooks get saved in incremental and full files,
    just like normal abbrevs.kS Check for characters to change.
Calls a subroutine to see-if/do any expand characters need updating.S Check list of chars for expanders, fix.
q.1:    List of characters.
q.6:    ^R Macro to check against.
q.7:    Subroutine to call if char runs .6.S Check list of expand characters for changes
q.1:    List of characters.
q.6:    ^R Macro to check against.
q.7:    Subroutine to call if change.{S Make a self-inserter expander.
Caller has .2 bound to self-inserter builtin.
Numeric argument: 9-bit of key to use.GS Make a call-old expander.
Numeric argument: 9-bit of key to use.#S Reset char ARG to @fs^RInit.(S Reset char ARG to what was before.ZS Return Q.L or Q.V...
Returns Q.L if argument is a local q-register,  Q.V otherwise.[S Produce a short string, showing beginning/end.
Numeric argument is a string pointer.	& Setup WORDAB Library
Expand Word Abbrevs in Region
^R Abbrev Expand Only
^R Abbrev Expand And Call Old Char
^R Abbrev Expand And Self-Insert
^R Abbrev Expand for Tab
^R Word Abbrev Prefix Mark
& WRDAB Mode or Global Expand
& Global Expand
& Expand
^R Unexpand Last Word
WORDAB
Word Abbrev Mode
Old Word Abbrev Character Describe
Define Word Abbrevs
Make Word Abbrev
Make These Characters Expand
^R Add Mode Word Abbrev
^R Add Global Word Abbrev
^R Inverse Add Mode Word Abbrev
^R Inverse Add Global Word Abbrev
^R Kill Mode Word Abbrev
^R Kill Global Word Abbrev
& Add Word Abbrev
& Check And Make Word Abbrev
Edit Word Abbrevs
List Word Abbrevs
Insert Word Abbrevs
Kill All Word Abbrevs
Read Word Abbrev File
Write Word Abbrev File
Write Incremental Word Abbrev File
Read Incremental Word Abbrev File
& Make Usage Abbrev Variable
& Make Non-Usage Abbrev Variable
Attach Word Abbrev Keyboard Macro
& Attach Word Abbrev Hook
& WRDAB Process Options Hook
& WRDAB Off PO Check
& WRDAB On PO Check
& WRDAB Turn On Ins Char
& WRDAB Turn On Old Char
& WRDAB Turn Off Ins Char
& WRDAB Turn Off Old Char
& Global or Local
& Shorten String
\+8+fq(+4)[2 0[3
< %3,-q2f2u3 q3&1@; q3"l 0' >
f[BBind q3-1*5,q3*5g2 q:..o(0)+q2